/***********************************************************************
 * Module:  AliPayUnifiedOrderManager.java
 * Author:  SAGE-GENERATOR
 * Purpose: DDD: domain 领域层,领域服务(Domain Services):
 *      一些行为无法归类到实体对象或值对象上，本质是一些操作，而非事物。
 ***********************************************************************/

package com.oweight.sagacious.payment.domain.service;

import com.oweight.sagacious.api.model.msg.Message;
import com.oweight.sagacious.payment.domain.model.AliPayRefundModel;
import com.oweight.sagacious.payment.domain.model.AliPayUnifiedOrder;

/**
 * 支付宝统一下单：领域服务接口
 *
 * @author SAGE
 * @version v1 2019-11-15 11:48:09
 */
public interface IAliPayManager {

    /**
     * APP下单
     *
     * @param order
     * @return
     */
    Message appOrder(AliPayUnifiedOrder order);

    /**
     * 统一收单交易支付
     *
     * @param order
     * @return
     */
    Message order(AliPayUnifiedOrder order);

    /**
     * 扫码支付
     *
     * @return
     */
    Message sweepCodePayment();

    /**
     * 统一收单交易退款
     *
     * @param model
     * @return
     */
    Message refund(AliPayRefundModel model);

    /**
     * 商家退单
     */
}
